package main

import (
	"fmt"
	"net"
)

func main() {
	listener, err := net.Listen("tcp", ":12345")
	if err != nil {
		fmt.Println("服务监听失败：", err)
		return
	}
	for {
		// 等待客户端创建的连接
		conn, err := listener.Accept()
		if err != nil {
			fmt.Println("与客户端建立连接失败：", err)
			return
		}

		go process(conn)
	}

}

func process(conn net.Conn) {
	// 与客户端通信
	var str [128]byte
	n, err := conn.Read(str[:])
	if err != nil {
		fmt.Println("获取用户发送的数据失败：", err)
		return
	}
	fmt.Println("获取到的数据为：", string(str[:n]))
	// 发送给用户的数据
	// 追加数据
	strs := []byte(" this is a append")
	res := append(str[:], strs...)
	fmt.Println("发送给你的数据为：", string(res))
	_, err = conn.Write(res)
	if err != nil {
		fmt.Println("发送给用户数据失败：", err)
		return
	}
}
